package 二分法;

/**
 * @author zhengTao
 * @version 1.0
 * @description: 标准二分法：
 * 给定一个n个元素有序的（升序）
 * 整型数组nums 和一个目标值target ，
 * 写一个函数搜索nums
 * 中的 target，如果目标值存在返回下标，否则返回 -1。
 * @date 2022/10/14 14:02
 */
public class Demo704 {
    public int search(int[] nums, int target) {
        if(nums.length<1){
            return -1;
        }
        //左闭右闭
        int left=0,right=nums.length-1;
        while (left<=right){
            int mid=left+(right-left)/2;
            if(nums[mid]>target){
                right=mid-1;
            }else if(nums[mid]<target){
                left=mid+1;
            }else {
                return mid;
            }
        }
        return -1;
    }
}
